home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1409.txt < prev    next >
Text File  |  1994-08-01  |  13KB  |  396 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                  D. Borman, Editor
  8. Request for Comments: 1409                           Cray Research, Inc.
  9.                                                             January 1993
  10.  
  11.  
  12.                       Telnet Authentication Option
  13.  
  14. Status of this Memo
  15.  
  16.    This memo defines an Experimental Protocol for the Internet
  17.    community.  Discussion and suggestions for improvement are requested.
  18.    Please refer to the current edition of the "IAB Official Protocol
  19.    Standards" for the standardization state and status of this protocol.
  20.    Distribution of this memo is unlimited.
  21.  
  22. 1.  Command Names and Codes
  23.  
  24.    AUTHENTICATION  37
  25.        IS               0
  26.        SEND             1
  27.        REPLY            2
  28.        NAME             3
  29.  
  30.        Authentication Types
  31.        NULL             0
  32.        KERBEROS_V4      1
  33.        KERBEROS_V5      2
  34.        SPX              3
  35.        RSA              6
  36.        LOKI            10
  37.  
  38.        Modifiers
  39.        AUTH_WHO_MASK        1
  40.        AUTH_CLIENT_TO_SERVER    0
  41.        AUTH_SERVER_TO_CLIENT    1
  42.        AUTH_HOW_MASK        2
  43.        AUTH_HOW_ONE_WAY         0
  44.        AUTH_HOW_MUTUAL          2
  45.  
  46. 2.  Command Meanings
  47.  
  48.    This document makes reference to a "server" and a "client".  For the
  49.    purposes of this document, the "server" is the side of the connection
  50.    that did the passive TCP open (TCP LISTEN state), and the "client" is
  51.    the side of the connection that did the active open.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Telnet Working Group                                            [Page 1]
  59.  
  60. RFC 1409              Telnet Authentication Option          January 1993
  61.  
  62.  
  63.    IAC WILL AUTHENTICATION
  64.  
  65.       The client side of the connection sends this command to indicate
  66.       that it is willing to send and receive authentication information.
  67.  
  68.    IAC DO AUTHENTICATION
  69.  
  70.       The servers side of the connection sends this command to indicate
  71.       that it is willing to send and receive authentication information.
  72.  
  73.    IAC WONT AUTHENTICATION
  74.  
  75.       The client side of the connection sends this command to indicate
  76.       that it refuses to send or receive authentication information; the
  77.       server side sends this command if it receives a DO AUTHENTICATION
  78.       command.
  79.  
  80.    IAC DONT AUTHENTICATION
  81.  
  82.       The server side of the connection sends this command to indicate
  83.       that it refuses to send or receive authentication information; the
  84.       client side sends this command if it receives a WILL
  85.       AUTHENTICATION command.
  86.  
  87.    IAC SB AUTHENTICATION SEND authentication-type-pair-list IAC SE
  88.  
  89.       The sender of this command (the server) requests that the remote
  90.       side send authentication information for one of the authentication
  91.       types listed in "authentication-type-pair-list".  The
  92.       "authentication-type-pair-list" is an ordered list of
  93.       "authentication-type" pairs.  Only the server side (DO
  94.       AUTHENTICATION) is allowed to send this.
  95.  
  96.    IAC SB AUTHENTICATION IS authentication-type-pair <auth data> IAC SE
  97.  
  98.       The sender of this command (the client) is sending the
  99.       authentication information for authentication type
  100.       "authentication-type-pair".  Only the client side (WILL
  101.       AUTHENTICATION) is allowed to send this.
  102.  
  103.    IAC SB AUTHENTICATION REPLY authentication-type-pair <auth data> IAC
  104.    SE
  105.  
  106.       The sender of this command (the server) is sending a reply to the
  107.       the authentication information received in a previous IS command.
  108.       Only the server side (DO AUTHENTICATION) is allowed to send this.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Telnet Working Group                                            [Page 2]
  115.  
  116. RFC 1409              Telnet Authentication Option          January 1993
  117.  
  118.  
  119.    IAC SB AUTHENTICATION NAME remote-user IAC SE
  120.  
  121.       This optional command is sent to specify the account name on the
  122.       remote host that the user wishes to be authorized to use.  Note
  123.       that authentication may succeed, and the authorization to use a
  124.       particular account may still fail.  Some authentication mechanisms
  125.       may ignore this command.
  126.  
  127.    The "authentication-type-pair" is two octets, the first is the
  128.    authentication type (as listed in Section 1, additions to this list
  129.    must be registered with the Internet Assigned Numbers Authority
  130.    (IANA)), and the second is a modifier to the type.  There are
  131.    currently two one bit fields defined in the modifier, the
  132.    AUTH_WHO_MASK bit and the AUTH_HOW_MASK bit, so there are four
  133.    possible combinations:
  134.  
  135.       AUTH_CLIENT_TO_SERVER
  136.       AUTH_HOW_ONE_WAY
  137.  
  138.          The client will send authentication information about the local
  139.          user to the server.  If the negotiation is successful, the
  140.          server will have authenticated the user on the client side of
  141.          the connection.
  142.  
  143.       AUTH_SERVER_TO_CLIENT
  144.       AUTH_HOW_ONE_WAY
  145.  
  146.          The server will authenticate itself to the client.  If the
  147.          negotiation is successful, the client will know that it is
  148.          connected to the server that it wants to be connected to.
  149.  
  150.       AUTH_CLIENT_TO_SERVER
  151.       AUTH_HOW_MUTUAL
  152.  
  153.          The client will send authentication information about the local
  154.          user to the server, and then the server will authenticate
  155.          itself to the client.  If the negotiation is successful, the
  156.          server will have authenticated the user on the client side of
  157.          the connection, and the client will know that it is connected
  158.          to the server that it wants to be connected to.
  159.  
  160.       AUTH_SERVER_TO_CLIENT
  161.       AUTH_HOW_MUTUAL
  162.  
  163.          The server will authenticate itself to the client, and then the
  164.          client will authenticate itself to the server.  If the
  165.          negotiation is successful, the client will know that it is
  166.          connected to the server that it wants to be connected to, and
  167.  
  168.  
  169.  
  170. Telnet Working Group                                            [Page 3]
  171.  
  172. RFC 1409              Telnet Authentication Option          January 1993
  173.  
  174.  
  175.          the server will know that the client is who it claims to be.
  176.  
  177. 3.  Default Specification
  178.  
  179.    The default specification for this option is
  180.  
  181.       WONT AUTHENTICATION
  182.       DONT AUTHENTICATION
  183.  
  184.    meaning there will not be any exchange of authentication information.
  185.  
  186. 4.  Motivation
  187.  
  188.    One of the deficiencies of the Telnet protocol is that in order to
  189.    log into remote systems, users have to type their passwords, which
  190.    are passed in clear text through the network.  If the connections
  191.    goes through untrusted networks, there is the possibility that
  192.    passwords will be compromised by someone watching the packets as they
  193.    go by.
  194.  
  195.    The purpose of the AUTHENTICATION option is to provide a framework
  196.    for the passing of authentication information through the TELNET
  197.    session.  This means that: 1) the users password will not be sent in
  198.    clear text across the network, and 2) if the front end telnet process
  199.    has the appropriate authentication information, it can automatically
  200.    send the information, and the user will not have to type any
  201.    password.
  202.  
  203.    It is intended that the AUTHENTICATION option be general enough that
  204.    it can be used to pass information for any authentication system.
  205.  
  206. 5.  Security Implications
  207.  
  208.    The ability to negotiate a common authentication mechanism between
  209.    client and server is a feature of the authentication option that
  210.    should be used with caution.  When the negotiation is performed, no
  211.    authentication has yet occurred.  Therefore, each system has no way
  212.    of knowing whether or not it is talking to the system it intends.  An
  213.    intruder could attempt to negotiate the use of an authentication
  214.    system which is either weak, or already compromised by the intruder.
  215.  
  216. 6.  Implementation Rules
  217.  
  218.    WILL and DO are used only at the beginning of the connection to
  219.    obtain and grant permission for future negotiations.
  220.  
  221.    The authentication is only negotiated in one directions; the server
  222.    must send the "DO", and the client must send the "WILL".  This
  223.  
  224.  
  225.  
  226. Telnet Working Group                                            [Page 4]
  227.  
  228. RFC 1409              Telnet Authentication Option          January 1993
  229.  
  230.  
  231.    restriction is due to the nature of authentication; there are three
  232.    possible cases; server authenticates client, client authenticates
  233.    server, and server and client authenticate each other.  By only
  234.    negotiating the option in one direction, and then determining which
  235.    of the three cases is being used via the suboption, potential
  236.    ambiguity is removed.  If the server receives a "DO", it must respond
  237.    with a "WONT".  If the client receives a "WILL", it must respond with
  238.    a "DONT".
  239.  
  240.    Once the two hosts have exchanged a DO and a WILL, the server is free
  241.    to request authentication information.  In the request, a list of
  242.    supported authentication types is sent.  Only the server may send
  243.    requests ("IAC SB AUTHENTICATION SEND authentication-type-pair-list
  244.    IAC SE").  Only the client may transmit authentication information
  245.    via the "IAC SB AUTHENTICATION IS authentication-type ... IAC SE"
  246.    command.  Only the server may send replys ("IAC SB AUTHENTICATION
  247.    REPLY authentication-type ... IAC SE").  As many IS and REPLY
  248.    suboptions may be exchanged as are needed for the particular
  249.    authentication scheme chosen.
  250.  
  251.    If the client does not support any of the authentication types listed
  252.    in the authentication-type-pair-list, a type of NULL should be used
  253.    to indicate this in the IS reply.  Note that in this case, the server
  254.    may choose to close the connection.
  255.  
  256.    The order of the authentication types MUST be ordered to indicate a
  257.    preference for different authentication types, the first type being
  258.    the most preferred, and the last type the least preferred.
  259.  
  260.    The following is an example of use of the option:
  261.  
  262.        Client                           Server
  263.                                         IAC DO AUTHENTICATION
  264.        IAC WILL AUTHENTICATION
  265.        [ The server is now free to request authentication information.
  266.          ]
  267.                                         IAC SB AUTHENTICATION SEND
  268.                                         KERBEROS_V4 CLIENT|MUTUAL
  269.                                         KERBEROS_V4 CLIENT|ONE_WAY IAC
  270.                                         SE
  271.        [ The server has requested mutual Kerberos authentication, but is
  272.          willing to do just one-way Kerberos authentication.  The client
  273.          will now respond with the name of the user that it wants to log
  274.          in as, and the Kerberos ticket.  ]
  275.        IAC SB AUTHENTICATION NAME "joe"
  276.        IAC SE
  277.        IAC SB AUTHENTICATION IS
  278.        KERBEROS_V4 CLIENT|MUTUAL AUTH 4
  279.  
  280.  
  281.  
  282. Telnet Working Group                                            [Page 5]
  283.  
  284. RFC 1409              Telnet Authentication Option          January 1993
  285.  
  286.  
  287.        7 1 67 82 65 89 46 67 7 9 77 0
  288.        48 24 49 244 109 240 50 208 43
  289.        35 25 116 104 44 167 21 201 224
  290.        229 145 20 2 244 213 220 33 134
  291.        148 4 251 249 233 229 152 77 2
  292.        109 130 231 33 146 190 248 1 9
  293.        31 95 94 15 120 224 0 225 76 205
  294.        70 136 245 190 199 147 155 13
  295.        IAC SE
  296.        [ The server responds with an ACCEPT command to state that the
  297.          authentication was successful.  ]
  298.                                         IAC SB AUTHENTICATION REPLY
  299.                                         KERBEROS_V4 CLIENT|MUTUAL ACCEPT
  300.                                         IAC SE
  301.        [ Next, the client sends across a CHALLENGE to verify that it is
  302.          really talking to the right server.  ]
  303.        IAC SB AUTHENTICATION REPLY
  304.        KERBEROS_V4 CLIENT|MUTUAL
  305.        CHALLENGE xx xx xx xx xx xx xx
  306.        xx IAC SE
  307.        [ Lastly, the server sends across a RESPONSE to prove that it
  308.          really is the right server.
  309.                                         IAC SB AUTHENTICATION REPLY
  310.                                         KERBEROS_V4 CLIENT|MUTUAL
  311.                                         RESPONSE yy yy yy yy yy yy yy yy
  312.                                         IAC SE
  313.  
  314.    It is expected that any implementation that supports the Telnet
  315.    AUTHENTICATION option will support all of this specification.
  316.  
  317. 7.  References
  318.  
  319.    [1] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340,
  320.        USC/Information Sciences Institute, July 1992.
  321.  
  322. Security Considerations
  323.  
  324.    Security issues are discussed in Section 5.
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Telnet Working Group                                            [Page 6]
  339.  
  340. RFC 1409              Telnet Authentication Option          January 1993
  341.  
  342.  
  343. Author's Address
  344.  
  345.    David A. Borman, Editor
  346.    Cray Research, Inc.
  347.    655F Lone Oak Drive
  348.    Eagan, MN 55123
  349.  
  350.    Phone: (612) 452-6650
  351.    EMail: dab@CRAY.COM
  352.  
  353.    Mailing List: telnet-ietf@CRAY.COM
  354.  
  355. Chair's Address
  356.  
  357.    The working group can be contacted via the current chair:
  358.  
  359.    Steve Alexander
  360.    INTERACTIVE Systems Corporation
  361.    1901 North Naper Boulevard
  362.    Naperville, IL 60563-8895
  363.  
  364.    Phone: (708) 505-9100 x256
  365.    EMail: stevea@isc.com
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Telnet Working Group                                            [Page 7]
  395.  
  396.